Message backup facilities

ABSTRACT

Message backup, in which a method initiates establishment of an active telephone call to a voicemail server of a telecommunications service, the voicemail server storing a voicemail message; receives an audio stream from the voicemail server during the active telephone call, the audio stream being part of the active telephone call, wherein the voicemail message is played back as part of the audio stream; initiates recording of at least a portion of the audio stream of the active telephone call, the portion of the audio stream comprising the voicemail message; and streams the portion of the audio stream from the computer system to a remote system.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/740,328 filed Jun. 16, 2015 entitled “Message Backup Facilities”,which claims priority to U.S. patent application Ser. No. 13/891,226filed May 10, 2013 entitled “MESSAGE BACKUP FACILITIES”, which claimspriority under 35 U.S.C. §119(e) to U.S. Provisional Patent ApplicationNo. 61/645,904 filed May 11, 2012 entitled, “MESSAGE STORE APPLICATION”.The contents of the aforementioned applications are hereby incorporatedherein by reference in their entirety.

BACKGROUND

Millions of voice and text messages are communicated between partieseach day through various telecommunications services or message storagedevices. Typically, users access these messages using cellular (or othermobile) devices, or home/office telephones, that retrieve and storetheir messages. In some cases, the telecommunications provider or device(such as an answering machine) retains the message until, for instance,a quota is reached or a time period for storing the message lapses. Incases where the message is not retained by the telecommunication serviceand the mobile device on which the message was received is lost, stolen,or otherwise unable to replay the message for the user, the message isgenerally lost. What is needed is a persistent message backup servicethat enables a user to backup messages, perhaps that were previouslyreceived, with a service separate from the telecommunications service ordevice that was used to initially receive the message for the user, andthat enables access to those backed up messages in a manner that isindependent from both the telecommunications service provider and anydevice at which the message was initially received.

BRIEF SUMMARY

The shortcomings of the prior art are overcome and additional advantagesare provided through the provision of a method that includes initiating,by a computer system, establishment of an active telephone call to avoicemail server of a telecommunications service, the voicemail serverstoring a voicemail message; receiving an audio stream from thevoicemail server during the active telephone call, the audio streambeing part of the active telephone call, wherein the voicemail messageis played back as part of the audio stream; initiating recording of atleast a portion of the audio stream of the active telephone call, theportion of the audio stream comprising the voicemail message; andstreaming the portion of the audio stream from the computer system to aremote system.

In a further aspects, a computer program product that includes a storagemedium storing program instructions readable by a computer system forexecution to perform a method that includes: initiating, by the computersystem, establishment of an active telephone call to a voicemail serverof a telecommunications service, the voicemail server storing avoicemail message; receiving an audio stream from the voicemail serverduring the active telephone call, the audio stream being part of theactive telephone call, wherein the voicemail message is played back aspart of the audio stream; initiating recording of at least a portion ofthe audio stream of the active telephone call, the portion of the audiostream comprising the voicemail message; and streaming the portion ofthe audio stream from the computer system to a remote system.

In yet a further aspect, a computer system is provided that includesprogram instructions for execution to perform a method including:initiating establishment of an active telephone call to a voicemailserver of a telecommunications service, the voicemail server storing avoicemail message; receiving an audio stream from the voicemail serverduring the active telephone call, the audio stream being part of theactive telephone call, wherein the voicemail message is played back aspart of the audio stream; initiating recording of at least a portion ofthe audio stream of the active telephone call, the portion of the audiostream comprising the voicemail message; and streaming the portion ofthe audio stream from the computer system to a remote system.

Additional features and advantages are realized through the concepts ofthe present invention. Other embodiments and aspects of the inventionare described in detail herein and are considered a part of the claimedinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

One or more aspects of the present invention are particularly pointedout and distinctly claimed as examples in the claims at the conclusionof the specification. The foregoing and other objects, features, andadvantages of the invention are apparent from the following detaileddescription taken in conjunction with the accompanying drawings inwhich:

FIG. 1 depicts one example of an environment to incorporate and use oneor more aspects described herein;

FIG. 2 depicts an example interface presented by an application of aclient computing system, in accordance with aspects described herein;

FIG. 3 depicts an example interface for controlling recording of avoicemail message, in accordance with aspects described herein;

FIG. 4 depicts one example of a process for backing up a message, inaccordance with aspects described herein;

FIG. 5 depicts one example of a process for facilitating backing up of amessage, in accordance with aspects described herein;

FIG. 6 depicts one example of a data processing system to incorporateand use one or more aspects of the present invention; and

FIG. 7 depicts one embodiment of a computer program productincorporating one or more aspects of the present invention.

DETAILED DESCRIPTION

Aspects described herein facilitate backing up of a user's receivedvoicemail and text messages to, for instance, one or more servers, suchas central cloud based server(s). Additionally, message organization,retrieval, viewing/playing, editing, and sharing facilities may beprovided as described herein.

Client software for facilitating aspects described herein runs/executeson a client computing system. In one example, client software executesas a mobile application (app′) on a mobile device that communicates withone or more other systems/devices, such as a remote backup server, viaWeb services. For convenience, some aspects of client software aredescribed herein using a mobile application as an example, though itshould be appreciated that client software could be any applicationexecuting on any type of computing system, and need not be a mobileapplication that executes on a mobile device.

Thus, in some examples a client computing system is, for instance, amobile device. Examples of mobile devices include smartphones and tabletcomputers, such as devices running an iOS-based operating system offeredby Apple Inc, Cupertino, Calif., USA (i.e. iPhone® and iPad®),Android-based operating system offered by the Open Handset Alliance, orBlackberry® OS operating system offered by Research In Motion, Waterloo,ON, Canada. Additional mobile device types are also contemplated. Ingeneral, a user can manage and use aspects described herein from anymobile device (such as any smartphone), tablet computer (such as anApple® iPad® or other tablet computer), or from a laptop or otherpersonal computer. Even more generally, a computing system is any devicecapable of executing program code to perform functions described herein.

In one example, a client computing system interacts with one or moreremote backup servers having one or more resident databases. A residentdatabase on a server can provide the storage for messages, for instancetext messages, such as SMS or MMS message, and voicemail messages (alsoreferred to herein as “voice messages”) received by way of atelecommunications service, such as a cellular or landline telephoneservice. In some examples, the messages may be retrieved by a clientcomputing device and uploaded to one or more remote backup servers,tagged, and associated with a user's account.

In some embodiments, voice messages previously stored at a clientcomputing device can be uploaded by an application (such as a mobile appexecuting on a mobile device) to a remote backup server. A voice messageleft for a user may initially be held/stored at a voicemail server of atelecommunications service provider, such as a cellular telephoneservice provider, and the application may cause the mobile device tocommunicate with the voicemail server, perhaps by way of an intermediarydevice, to retrieve and record the voicemail message locally on themobile device and/or stream or otherwise upload the message to a remotebackup server. Thus, in one embodiment, the voicemail messages alreadyleft for the user by one or more other users and stored on thetelecommunications service provider's server(s) can be recorded,retrieved by the client computing device, and then automaticallyuploaded to the remote backup server.

At initial setup of a message backup service as described herein,messages residing on the client computing device, as well as messagesresiding externally (such as residing on voicemail server(s) of acellular telephone service provider) can be backed up. This capturesmessages that were received at the mobile device and/or voicemailserver(s) prior to signing up for the service, including those messagesthat were deleted from the carrier's server(s) but nevertheless stillexist on the mobile device, or vice versa. Thus, during initial setup, amobile application on a mobile device, for instance, can upload tostorage of the user's account on a remote backup server messages thatexist on the mobile device and that are accessible to the mobileapplication. Additionally, in some embodiments, messages that existexternally on a voicemail server but either do not exist on the mobiledevice, or do exist on the mobile device but are not accessible to theapplication on the mobile device, can be recorded and uploaded asdescribed herein. Examples of voicemail messages that exist on avoicemail server but may not exist on the mobile device include messagesthat were newly received by the cell service providers' server but whichthe mobile device is not yet made aware of In many cases, a message maybe provided to the mobile device, which can then provide, by way of themobile application, the message to the remote backup server.

During ongoing operation of the application after initial setup, when anew message arrives at a voicemail server or arrives at the mobiledevice, the client computing device (for instance the mobile appexecuting thereon) may become aware of the new message's arrival becausethe client computing device acquires knowledge of the presence of thenew message. For instance, a mobile application can employ data miningtechniques to determine how many and which messages have been receivedby the telecommunications service but are not yet uploaded to a remotebackup server. The mobile application may then initiate retrieval of themessage by the mobile device (if not already retrieved), so that themessage is received by the mobile device and then can be sent to aremote backup server. In some embodiments, an intermediary devicebetween the client computing device and the voicemail server (whichintermediary device may itself be included as part of the remote backupserver) connects directly to the voicemail server to receive thevoicemail message under program control of the client computing deviceapplication, rather than pulling the messages from the mobile device.

After a message is sent (in the case of a text message) or left (in thecase of a voicemail message) for a recipient and is stored on atelecommunications service's server or is received directly by thehandset (such as in the case of SMS messages), the mobile device mayreceive an indication that a new message was received. In some caseswhere the message is a voicemail, the voicemail can be obtained andstored at the client computing device and/or caused to be uploaded bythe mobile application to a remote backup server. In one example, thevoicemail is pushed to the mobile device automatically, while in otherexamples, an active telephone call is placed to the voicemail server andthe voicemail message is recorded as it is played back during the activetelephone call. For instance, the mobile app itself may cause the mobiledevice to dial and retrieve the new message, which can then be recordedat the mobile device or an intermediary device and/or streamed to aremote backup server. In yet another example, the mobile application canindicate to a remote device, such as a central server or remote backupserver, that a new voicemail message was received. The remote device candial into the voicemail server and obtain the message directly bycausing the voicemail server to playback the message, and then recordingthe message during the voicemail message playback.

As is the case with some mobile devices, such as the iPhone®, there isnot always consistency between which messages (if any) are stored on themobile device and which messages (if any) are stored on a voicemailserver. Aspects described herein account for this and may retrievemessages from both locations. In this manner, for some messages storedon the mobile device, they may be read from the mobile device and backedup to a remote backup server, and messages subsequently received duringongoing provision of a service as described herein can be backed up to aremote backup server from the telecommunications service via the mobiledevice. If a message resides on a voicemail server, the mobileapplication, in one example, can cause the message to be obtained fromthe voicemail server and provided to and stored by a remote backupserver, for instance in an appropriate format (e.g. way, mp3, etc). Themobile application can, for instance, record the voicemail message, orcause the voicemail message to be recorded, as it is played back fromthe voicemail server. The application can then upload the message, orcause the message to be uploaded, to a remote backup server and/or pipethe message to the remote backup server as the message is received fromthe voicemail server. Thus, in this example, the mobile application canrecord the message onto the mobile device when the message is streamedto the mobile device from the carrier, and can also retrieve informationabout the message, such as information indicating the sender of themessage. Then, the message and corresponding information may be uploadedto the remote backup server. In one particular embodiment, the mobileapplication can begin uploading the message to the remote backup serverbefore the message is fully received at the mobile device (i.e. as themessage is being streamed to the mobile device from the voicemailserver). Alternatively or additionally, the message can be received andrecorded in full at the mobile device or elsewhere, and then uploaded tothe remote backup server, or multiple messages can be recorded on themobile device or elsewhere, and uploaded in batch to the remote backupserver, as examples.

FIG. 1 depicts one example of an environment to incorporate and use oneor more aspects described herein. As depicted in FIG. 1, environment 100includes a client computing system 102 in communication with both avoicemail server 104 (across communication path(s) 110) and a remotebackup server 106 (across communication path 112). Client computingsystem 102, voicemail server 104, and remote backup server 106 may eachcomprise one or more data processing systems. Remote backup server 104may actually comprise a plurality of remote backup servers. Althoughonly a single voicemail server is depicted in FIG. 1, it is understoodthat aspects described herein may work with a plurality of voicemailservers, for instance one for each phone number registered with theuser's account for backing up of the messages received at eachregistered phone number. A communication path can comprise any suitablecommunication path for communications between components. It can includeone or more digital or analog connections operating via wired orwireless (or a combination thereof) technology to facilitatecommunication between components. As non-limiting examples, it caninclude a direct connection or path between two components, or it caninclude a series of interconnections, for instance network connectionssuch as a local area network (LAN), a wide area network (WAN), a tokenring, or Ethernet connections utilizing routers, switches, and/or hubs.When a communication path incorporates wireless communication, anysuitable wireless technology can be employed. By way of specificexamples, wireless connection technology such as RF, Wi-Fi, WLAN,Bluetooth, ZIGBEE, cellular, or any other suitable wirelesscommunication protocol and supporting hardware may be employed. Thecommunication path could comprise audio and/or video connections forpassing audio and/or video between the components.

Environment 100 may also include an intermediary system 108 to retrievevoice and/or text messages from a server of the telecommunicationsservice. Intermediary system 108 is a separate component acting as aproxy between client 102 and voicemail server 104. In one specificexample, intermediary system 108 includes call switching functionality,for instance voice over Internet Protocol switching capability as aPrivate Branch Exchange (PBX) device. The switch may dial the voicemailserver, and, under program control, retrieve/download/record themessages from the voicemail server. For instance, in some examples, theswitch can record the messages as the messages are played by thevoicemail server and received in the audio stream of the call. Therecorded messages can then be saved to a remote backup server and/or theclient device. Intermediary system 108 is an optional component in that,in some embodiments, aspects described herein are facilitated absentinvolvement of an intermediary system, as described below.

In one embodiment, client 102 is a mobile telephone running anAndroid-based mobile operating system and including a telephone callingfacility. Client 102 may use the telephone calling facility to place acall to voicemail server 104 which has stored a received voicemailmessage. The client may then directly control the playback of thatvoicemail to the client during the call using dual-tone multi-frequency(DTMF) signaling, for instance, and the client can control recording ofthat voicemail message. The call may be recorded at the client by theclient application as an audio waveform, then processed and uploaded toremote backup server 106 and associated with a user's account. In thisexample, no intermediary system 108 is needed.

In another embodiment, an intermediary system 108 is used for placing acall to voicemail server 104. Client 102 is, in this example, an iPhone®which calls voicemail server 104 through an intermediate voice switch(e.g. a VoIP switch of intermediary system 108). For instance, a customcreated VoIP dialer of client 102 can dial to the voice switch which maythen connect the call to the voicemail server. The active phone call canbe piped through intermediary system 108 to client 102, which can recordthe audio stream of the call. Additionally or alternatively, therecording may be done at intermediary system 108, since the audio streamof the call passes through the intermediary system. In any case, therecorded audio stream, or a portion thereof, can then be uploaded toremote backup server 106.

In some examples, the client software incorporates a Session InitiationProtocol (SIP) protocol dialer for controlling the call to the voicemailserver.

In the example of FIG. 1 remote backup server 106 and intermediarysystem 108 are shown as separate components which may or may not belocated at a same location. However, in some embodiments, backup server106 and intermediary system 108 are a single component or part of acommon component between client 102 and voicemail server 104. Forinstance, a remote backup server could incorporate functionality of theintermediary system, or vice versa.

Client software described herein can incorporate various functionalityfor backing up messages and other related features, such as sharingmessages with other users. In some examples, client software facilitatescreation of user accounts and profiles. It can facilitate selection bythe user between different levels of a subscription plan for the backupservice, as well as provision of a number and indication of phones ortelephony services to be associated with the user account (and fromwhich uploaded messages may be provided), in addition to an indicationof a telecommunications service provider associated with each of thephone numbers. Additionally, the client software can facilitate (i)provision of user personal information during sign up for the service,(ii) provision of phone information for a user's own phone and also forother users' phones with whom messages are to be shared, (iii) entry ofcredit card information to accept payment form the user for use of theservice, (iv) selection of an account name and password, (v) reading ofidentifying information that, for instance, a carrier provides alongwith a message, and (vi) provision of that identifying information andmessages to the remote backup server(s). Mobile client software can, insome embodiments, also enable creation of folders and management of themessages stored on the remote backup server(s) for the users, as needed.

An example is now described of setting up an account for a messagebackup service as described herein. The example is provided withreference to an application running on a mobile telephone, thoughsimilar processes can be used to setup an account at any other type ofcomputing system, such as a PC, laptop, or tablet computer.

When the application is initially launched, a display is provided withbuttons that a user can select to setup an account, or login (if theuser already has an account). Assuming the user selects to setup anaccount, a New Account screen is provided that enables the user to inputan email address and password (twice, for confirmation) that is to beused for account login. In one example, an alphanumeric keyboard ispresented on the screen for typing in the email address and password. Alink to terms and conditions of the service may be provided in thisinterface. The user can select a Next button to both agree to the termsand conditions as well as progress to a Login screen. At the Loginscreen, the user enters the email address and password associated withthe newly created account, for instance using the on-screen alphanumerickeyboard. In one example, a selection box is provided that can beselected to keep the user logged in to the service, rather than havingto login each time the user launches the application.

If the user has forgotten his/her password, a button is provided that,when selected, can present an explanation of steps to reset theforgotten password.

After the user inputs the email address and correct password, then useris logged in and taken to an Account Setup screen to finish setting upthe account. The Account Setup screen provides direction for the user toregister one or more phone numbers where the user receives voice and/ortext messages (home phone, work phone, mobile phone, etc.). An Add Phonebutton may be provided to register a phone for this account. When theuser selects to add a phone number, an Add Phone Number interface isprovided in which the user can input the 10-digit phone number and mayalso input a pin code (typically, but not always, 4 digits) used toaccess the voicemail box, for instance. A number keypad can be providedon the screen for entry of the phone number and pin.

In some embodiments, a dropdown menu listing various telecommunicationsservice providers (AT&T®, Verizon®, T-Mobile®, Sprint®, etc.) isprovided. Selection of the proper telecommunication service provider canbe used to identify the proper means by which the voicemail server forthat provider is to be accessed. Some providers enable access to thevoicemail server by making a call to a particular number, such as *86 orthe telephone number of the phone, in order to reach the voicemailserver. Additionally or alternatively, a link can be provided in theinterface for the user to click for an explanation of how to identifythe service provider for the particular phone number being registered.

Once the phone number, pin, and service provider are entered, the usercan select a button to register the phone. The next interface presentedto the user can list the registered phones for the user's account. Aselection can be provided to delete/remove a registered phone numberfrom the account. Additionally, a button to add another phone can beprovided, which, when selected, again presents the add phone numberinterface as before. In some embodiments, the number of phone numbersthat a user is allowed to add to an account is limited to a particularnumber, such as three. The user may be allowed to add additional numbersfor a set or varying fee. A free account may enable, for instance, threephone numbers to be registered. If the user wishes to register a fourth,the user may be charged a set fee, which may be a one-time fee or may bea recurring fee.

At this point, the user may select that he/she is done, to take the userto an Account Ready screen. The Account Ready screen explains, in oneexample, that use of the service is free, which enables free access toall backed-up voicemail and text messages in the accountmailbox/storage. It can also indicate a website to which the user cannavigate to access the account, including account settings as well asthe messages backed-up using this account. The Account Ready screen caninclude a Next Step button that the user selects to both agree to theterms and conditions, as well as advance to an Account Activationscreen. The Account Activation screen can indicate that the service willbackup a first number of voicemail messages and a second number of textmessages for free, but that backup of additional messages requirespurchase of a package. The packages can be delivered as a recurring(weekly, monthly, yearly, etc.) subscription model that enablestiered-numbers of messages for backup each month. By way of specificexamples, the packages can be $9.95 for backup of up to 10 messages permonth, $19.95 for backup of up to 25 messages per month, or $39.95 forbackup of up to 60 emails per month. In one example, when a usersubscribes to any of the above packages, unlimited text message backupis included at no extra charge.

The user may select a package to which the user wishes to subscribe.Additionally, the user may toggle on/off text message backup.

The Account Activation screen can present Activate Now and ActivateLater buttons. If the user has not selected a package and instead optsfor only free service, the user can select Activate Later to be taken toa command screen described below with reference to FIG. 2. If insteadthe user selects a package and selects to activate the account now usingthe Activate Now button, then the user is presented with a Billing Setupscreen to input billing information for payment for the package beingpurchased. For instance, a numeric keypad can be presented as part ofthe interface to allow for input of a credit card number, expirationmonth, care verification value (CVV/CVV2) code, and billing ZIP code. Ifthe user has already associated credit cards with the account, a list ofcredit cards associated with the account is presented for selection bythe user. The list can indicate all credit cards linked to the accountand pre-authorized for billing. The user can select which credit card touse for payment of the package, and may also indicate a preferred creditcard. Additionally, at the Billing Setup screen, a promo code field maybe provided for inputting a promotional code for discounted or specialservices, as one example.

After account creation and activation (if purchasing a package), thebackup service is up and running, and facilities of the applicationenable backing up of messages received at the mobile device and/or atvoicemail servers of the telecommunications service providers of theregistered phone numbers. For instance, in some cases, the applicationcan read voice messages and text (such as SMS) messages received by themobile device on which the application runs, such as a cellulartelephone or other mobile device, and automatically synchronizeincoming/received message(s) to remote backup server(s). “Received”messages include those messages received any time that reside on themobile device or the voicemail server(s) for the mobile device. Forinstance, such received messages include both (i) messages receivedafter the user has signed-up for the service and the application isactively backing up those messages, and also (ii) messages received bythe mobile device or voicemail server(s) at any time prior to the usersigning up for the service. The mobile client software can enable and/orprovide recording and backup, to the remote backup server(s), ofincoming/received messages for storage of the messages to the remotebackup server(s).

Additionally, messages received by multiple different mobile devicesand/or from multiple different voicemail servers can all be backed upand associated with a single user account. A user can have multipletelephony devices, for instance each having a different phone number.The messages received at each of the multiple phone numbers, includingeither at the different devices or the different voicemail server(s)thereof, can be backed up to the remote backup server(s). In oneembodiment, each telephony device can be associated with a separateaccount of the remote backup server(s) and these multiple accounts areaggregated for a single account holder (user). Alternatively, themultiple devices can be associated with a single user account which hasassociated therewith multiple registered phone numbers as describedabove.

Additionally, messages stored in a user's account can be shared withother users. A separate fee structure can be attached to this sharingfunctionality, for instance one that charges a user per phone numberwith which a message is shared, or that charges a set fee to share agiven message with maximum number recipients, as examples. Other feestructures, including variants of the above, are also possible.

After account creation and activation (if purchasing a package), theapplication can present a Command screen when the user logs in. TheCommand screen may be the screen from which many functions of theapplication can be invoked by a user.

The application presents the Command screen as an interface of theclient computing device, and is described in further detail withreference to FIG. 2. Referring to FIG. 2, interface 200 includes thefollowing buttons/functions: Save a Message 202, My Messages 204, Sharea Message 206, Profile & Billing 208, Tell a Friend 210, About 212,Promotions 214, and Logout 216.

Selection of Logout button 216 will log the user out of the service.

The About button 212, when selected, displays text about theapplication, the backup service, etc., and can also include functionsfor Liking the app, app developer, or message backup service provider onsocial networks such as Facebook®. It can also include use and servicepolicies such as a Terms & Conditions, Copyright Policy, Privacy Policy,etc, or links to website(s) that display such policies.

The Promotions button 214, when selected, can give a promotional codefor discounted service. The code can, for instance, give a discount of$5.00 off a first month of use for a new user (and optionally a $5.00credit for the user who referred the new user).

The Tell a Friend button 210, when selected, can launch an interface fortexting/emailing a friend, or sharing or tweeting, via a social networksuch as Facebook® or LinkedIn®, or microblogging service such as Tumblr®or Twitter®, and optionally pre-filling the message with a message aboutthe backup service and/or its provider.

The Profile & Billing button 208, when selected, can presentinterface(s) for viewing/editing the user's profile (personalinformation, registered phone numbers, etc.) and billing information,such as payment methods and/or package subscription information. Asnoted above, provision of one or more aspects described herein can bebased on a subscription model, whereby a user pays a recurring (i.e.monthly, multi-monthly, yearly, etc) fee for access to his/her accountand/or an additional level of service beyond the free service offered. Auser can pay monthly, quarterly, yearly, etc. subscription managementfees. In this regard, payment facilitates, such as credit cardprocessing and PayPal® payment gateways, among others, can be integratedinto the application and/or remote backup server(s) or intermediarysystems to bundle the subscription payment services. The subscriptionmanagement aspects can be built into the remote backup servers, as anexample, to control user access to features or the additional level ofservice, such as to control operation of the mobile application toperform the backups, and/or control web-based access to the user'saccount.

Selection of the Save a Message button 202 can initiate saving (backingup) a message. As an example, a Save a New Voice Message screen can bedisplayed with guidance on how to save the message: First, a registeredphone number is to be selected indicating the phone number to which thevoicemail message was initially received. Second, playback of thatmessage is initiated as part of a telephone call to the voicemailserver, and the user can indicate when to start and stop recording ofthe audio stream that is received as part of that call. Third,confirmation can be given by the user that the recorded voicemail is tobe saved and associated with the user's account. Additionally, anindication can be given that text message backup can be enabled simplyby turning on auto-save of text messages (described above in connectionwith the Account Activation screen).

Thus, the interface presents a Select Phone Number screen for the userto indicate, for instance, where the message is (i.e. the phone numberat which the voicemail message was left) that the user wishes to savewith a secure remote backup server and associate with the user'saccount. The screen lists the phone number(s) that the user hasassociated with the user's account. After the user selects one of thephone numbers, the user can select to continue to a Play the MessageScreen with a Call Now button displayed. Selection of the Call Nowbutton will invoke a calling facility to place a call to the voicemailbox (voicemail server) of that telephone number. The calling facilitymay be on the client system, for instance, and/or part of anintermediary system, as described below. After the user selects the CallNow button and the call is being placed to the voicemail box, theapplication may display an interface with a numeric keypad and anindication that the voicemail box is being called.

This interface is used in one embodiment for controlling recording of avoicemail message, in accordance with aspects described herein, and isdescribed with reference to FIG. 3. Interface 300 includes numerickeypad 302 which enables the user to enter the appropriate numericalprompts for the voicemail server to playback the voicemail desired to besaved. For instance, some voicemail servers, after the call isconnected, may require that the user press “3” to begin playback of newmessages. In other examples, the user may need to navigate to a receivedmessage using the number keys, then press 3 (or another number) to beginmessage playback.

The call to the voicemail server is active and the user can listen tothe call, i.e. listen to the audio stream that is received during thecall, and respond accordingly using the number keys. Additionally, theinterface provides a Record button 304 and Stop 306 button to start andstop recording of the audio stream. In this manner, the user caninitiate recording of the audio stream by pressing Record button 304,for instance just before playback of the voicemail commences, andinitiate halting of that recording by pressing Stop button 306, justafter playback of the voicemail ends. The recorded audio stream can besaved, for instance by the application at the client device.Additionally or alternatively, as described in further detail below, theapplication can regard the user input to start/stop recording asinitiation for a remote device, such as an intermediary device sittingbetween the client application and the voicemail server, to start andstop recording the audio stream, for instance in cases where the audiostream passes through the intermediary device en route to the clientcomputing system and the intermediary device includes functionality torecorded the audio stream.

After the portion of the audio stream is recorded, a Confirm & Savescreen can be presented which enables the user to playback the recordedportion. Additionally, the screen can provide buttons for saving therecorded portion to the user's account, or for canceling without savingthe recorded portion. If the user chooses to save to the user's account,the recorded portion, or an isolated part of that recorded portionrepresenting the voicemail message, is uploaded to the remote backupserver and backed up. In this regard, the recorded portion may includenot only the voicemail message but additional portions of the audiostream before and/or after the voicemail message in the stream. Beforeor after the voicemail message in the recorded portion is backed up, thevoicemail message can be isolated from the rest of the recorded portionusing any number of techniques. For instance, the user can manuallyindicate a start and stop of the voicemail message in the recordedportion. Additionally or alternatively, this editing can be automated byanalyzing properties of the recorded portion of the audio stream, forinstance by detecting changes in audible signals of the audio stream.For instance, periods of relative silence or low audible signal canindicate that a voicemail is about to begin or has just ended. Othertechniques may analyze the waveform of the recorded portion to identifywhere the voicemail begins and ends.

When the user saves the voicemail message, the application may take theuser to a My Messages screen (which is also accessed from the CommandScreen 200 of FIG. 2 by selecting My Messages button 204). The MyMessages screen, which may be implemented as several sub-screens,presents a list of backed up messages for each registered phone numberof the user. In one example, the messages are arranged in folders, forinstance one folder (or root of a separate folder tree) for eachregistered phone number. For each registered phone number, the number isindicated along with a list of backed up messages optionally arranged byan identifier, such as a sender of the message. In this regard, aspectsdescribed herein enable automatic and/or manual message tagging whichassociates tag(s) with backed up messages to, for instance, assist inorganizing and searching for backed up messages. Messages can be taggedusing information provided by the telecommunications service providerwith the message, or other identifying information associated with themessage, such as a phone number from with the message was received.Identifying information can include a person sending or leaving themessage, time, date of the arrival, etc. In some embodiments, thistagging is automatic. In some embodiments, manual tagging is enabled,for instance if, due to limitations of the mobile device or carrier, theidentifying information is not inherently meaningful or ascertainable.In one embodiment, the user manually applies tags to messages eitherbefore or after they are uploaded to a remote backup server and createfolders, moving messages into folders to facilitate an organized archiveof the user's messages.

Thus, in the My Messages screen for a particular phone number, themessages may be arranged according to the sender of the message. Foreach sender, a list of backed up messages is provided. Additionally, aplay button may enable the user of the application to playback thebacked up message, whereby the message may be streamed or downloaded tothe client computing system from the remote backup server (if notalready presented on the client computing system) and played for theuser.

Accordingly, folder based message management is provided. Messages canbe stored and/or displayed using a folder or other nested/tree-basedorganization structure. For instance, a user can have a default inbox(for each phone number, in some cases) into which all messages uploadedto the remote backup server(s) are initially received. A user cancreate, edit, rename, delete, organize, rearrange, etc. message foldersand move messages to the folders, in order to classify and organizemessages. In one embodiment, the organization of messages (and interfacetherefore) is similar in form and functionality to common email messageorganization and presentation techniques. A user can delete any messagethat he/she no longer wishes to store at the remote backup server(s).Deleted messages can initially be place into a Trash and retainedindefinitely. When deleted from Trash, the message may be permanentlydeleted, in one example.

A user can utilize the My Message interface of the application to accessthese folders and manage messages within the folders. In other examples,the user can access the messages and this My Messages hierarchy via aweb interface of a data processing system, such as a personal computer(i.e. desktop, laptop) or a mobile device. In folder-based messagemanagement, the user can listen to voicemail, read texts, createfolders, and put the saved messages into the folders, labeled withwhatever comes from the carrier, in some examples. Whatever the carrierprovides and/or the client computing system provider allows to be readon the client device can be used to tag the message, in which a labelassociated with the message may be automatically applied, and in oneexample applied based on predefined rules.

Text and voice messages that are provided to a remote backup server canbe stored and be made accessible to a user as described above, forinstance by way of an application on a mobile device from which messageswere uploaded, or from a PC or other computing system via Web services.A user's message area can be password protected, requiring login to theuser's account. In one embodiment, as described above, the user signs upfor an account by choosing an account name and password, and canauthenticate himself/herself to access his/her account via a web-basedinterface that displays/provides a user interface by which the user canview, sort, categorize, label, read, play, edit, delete, etc. themessages stored on the remote server. The user interface can allow auser to change his/her account information, including a password, asoften as the user wants.

It is also contemplated that, in addition to message backup facilities,message manipulation, editing, creation, and sharing facilities can beprovided. Thus, creation and/or addition of voice/music or other audiomessages to saved messages is provided so that saved messages can beedited and/or enhanced. Additionally, messages and created/uploadedaudio, including enhanced messages, can be sent/forwarded/shared withother users. A notification or other messaging system can be providedthat enables users to share messages or portions thereof with otherusers, for example through one or more of a variety of methods includingplaying the message audio file in the context of an active telephonecall to another recipient of the message being played/shared. In oneexample, the another recipient is a user, though it is understood thatthe another recipient may be another entity or component receiving themessage to then be provided to the other user, such as the other user'smobile device, or a voicemail box for that other user. A social platformcan therefore be established to enable social interaction which includesmessage tagging, editing, sharing, etc. with others, including users ofthe backup service, and non-users of the backup service.

For instance, selection of a Share a Message button (206, FIG. 2) of theapplication can present a Share a Voice Message screen with guidance onhow to share a message: First, the user may select a message to shareusing an interface similar to or the same as the My Messages interfacedescribed above. Next, the user can select recipients of the message towhom the message is to be shared. Then, the user can optionallytype/record an introduction to the voice message, to enhance the voicemessage with additional content, and confirm that the enhanced messageis to be shared.

A Share button can be associated with each of the saved messages. In oneexample, the Share button is placed next to the Play button to playbackthe saved message as described above. Selecting the share button for aparticular message displays an interface where the user can indicate(input, using a display numerical keypad, for instance, or selectingfrom a list of Contacts) one or more recipients to which the message isto be shared. The recipients can be indicated as telephone numbers, inone example. Additionally or alternatively, a maximum can be placed onthe number of recipients of a shared message, and incremental fees maybe charged to the user based on the numbers of individual recipients forthe shared message, for instance.

After the user selects the recipients to which the message is to beshared, the user can be presented with an interface for enhancing themessage, for instance with additional audio. In one example, a recorderinterface is provided that enables the user to record an audio messagethat is to be appended before, after, or embedded within, the messagebeing shared. In one example, the duration of the audio message islimited, which may also be dictated based on subscription level. Inother examples, the user instead enhances the message with prerecordedor other predefined content, such as a song, jingle, or any other audiomessage. The predefined content may be content that is stored on thecomputing system or elsewhere. In some examples, the user may selectadditional audio content for which an additional fee applies, such as asong dedication if a user selects music to add to a message. In thismanner, a database of audio files may be maintained and/or provided forselection of one or more audio files by a user, where the selection mayresult in an additional fee, to use that audio file, charged to theuser. In some examples, the user is required to select an audio messagewith which the message being shared is to be enhanced. For instance, theuser may be required to select an audio message from a set ofadvertisement audio messages. The set of advertisements may bepre-selected based on information mined from the message being shared,or based on information about the user or the recipient to which themessage is being shared, as examples.

Yet further, in some embodiments the backup service, rather than theuser, determines a message with which to enhance the message beingshared. The backup service may randomly or selectively applyadvertisement audio messages to voicemail messages being shared betweena user and others, for instance.

When a message is shared, in one example, the client computing systeminitiates a call to each of the phone numbers to which the message isbeing shared. When the call is answered, either by another person or bythe voicemail service of the recipient phone number, the clientapplication can play the voicemail message which may or may not beenhanced, such that the recipient phone number receives the voicemailmessage as part of the audio stream of the call being placed.

In another example of sharing a message, the message is shared by way ofemail or some other content-exchange facility suitable for exchangingthe message being shared. For instance, the message may be provided as aformatted file (such as an .mp3, .wav, etc.) attached to an email,posted to a friend's social network page, etc.

Additional scenarios for backing up voice and text messages are nowprovided by way of example only. In the first example, a clientcomputing system is in communication with a cloud backup server at afirst remote location, and a voicemail server at a second remotelocation, such as a telecommunications service operator's location. Theclient is a mobile telephone, PC, or tablet, running client software(‘agent’).

The client detects that there is a message that is to be backed up.Depending upon the client device type, this can be done either byreading a message notification on the device or by manual methods, asexamples. When a message for backup is detected, the client eitherautomatically or under user direction dials a preconfigured accessnumber for the voicemail server. The client may have been pre-configuredwith such information (e.g. a voicemail access number, and PIN), forinstance during account setup or upon a user logging into his/heraccount using the application.

After establishing the connection with the voicemail server by way of acall, the agent automatically sends the required authenticationinformation for the account verification to the voicemail server. Theagent then enters the numerical digit(s) required to play the firstmessage in the voicemail storage. This information can be pre-configuredor can be manually entered after a prompt is heard from the voicemailserver.

The agent automatically (in one example) starts recording the audiostream being received as soon as a connection is made with the voicemailserver, in this example. At the end of the message, a user disconnectsthe call or can play the next message for possible recording thereof.

Next, a manual or automatic voice editing algorithm is used to isolatethe voice message(s) from surrounding audio (system prompt, othermessages, etc.) that may have been recorded in the audio stream. In bothscenarios, the recorded message may have system prompt as well as realvoice message. For instance, in a manual separation mode, a user may bepresented with options to (i) play the recording, (ii) indicate astarting message marker for the voicemail message, and/or (iii) indicatean ending message marker for the voicemail message. The user canplayback and listen to the message and identify, using the startindicator, the start of a voice message. This helps in separating theaudio before the playback of the voicemail message from the messagecontent itself. In some examples, the ending of the voicemail message isalso indicated by the user, though in other examples, the ending of thevoicemail message is automatically identified using a property of therecorded audio, for instance by analyzing for silence or near-silence inthe recorded portion of the audio stream, or analyzing for other audibleproperties of the recorded portion of the audio stream.

In contrast to the manual separation mode, an automatic separate mode isprovided which uses properties of the recorded portion of the audiostream to identify the start and/or end of a message. A system prompt istypically followed by the actual message, so analyzing the recordedportion for the system prompt can indicate the start of the message inthe waveform. The recorded portion can be analyzed for audio levels toidentify a segment of silence (or near-silence below a threshold audiolevel) of about 2 seconds (or other set duration of time). When thesilence (or near-silence) is detected, that may be deemed to be the endof the prompt and the start of the voice message. The duration of thedetected silence or near-silence is, in one example, a user oradministrator-configurable system parameter so that the detection can betailored to the particular systems with which it is used.

Continuing with the example from above, once the voice message isseparated from the extraneous recorded audio, a user may be able to addclassification tag(s) to the voice message (personal, business, family,other, etc.) as described previously. In some examples, a userassociates a set of keyword tags for the message which allows the voicemessage to be searched-for and identified using the keyword tagsattached to it.

The client logs in (if not already) to the cloud backup server utilizingthe user's ID, password, and/or other authentication Information. Theclient then uploads the voice message to the cloud server which storesand associates the voice message with the user's account, in which aunique message Id is generated and the voice message is saved in adatabase.

In another scenario, an intermediate call proxy node (such as a VoIP PBXswitch) is used to perform some of the above-described aspects, such asplacement of a call to the voicemail server. In this scenario, a clientcomputing system is in communication with a cloud backup server at afirst remote location, and a voicemail server at a second remotelocation by way of the intermediary switch. The client is again a mobiletelephone, PC, or tablet, running client software (‘agent’). The clientinitiates establishment of an active telephone call by communicatingwith the intermediary switch to place the telephone call to thevoicemail server. The intermediary switch establishes the activetelephone call between the client and the voicemail server, and theclient records the portion of the audio stream as described previously.

In yet another scenario, an intermediate call proxy node (such as a VoIPPBX switch) is used to perform some of the above-described aspects, suchas the recording of the message. This approach may be used in situationswhere the client device does not have call recording capabilities or isotherwise restricted from performing some of the functionality describedabove. In this scenario, a client computing system is in communicationwith a cloud backup server at a first remote location, and a voicemailserver at a second remote location by way of the intermediary node. Theclient is again a mobile telephone, PC, or tablet, running clientsoftware (‘agent’). Certain functionality of the intermediary node canbe controlled by the agent executing on the client.

The client initiates a call to the voicemail server via the intermediatenode. The intermediate node in turns forwards the call to the voicemailserver. Once the call is connected, the client initiates recording ofthe audio stream by requesting that the intermediate node beginrecording the audio stream (the audio passes through the intermediarynode en route to the client). Additionally, the client requests thevoicemail server (e.g. by way of DTMF signaling passed through theintermediary node to the voicemail server) to begin playing the voicemessage. The intermediary node, meanwhile, is recording the audio streambetween the voicemail server and the client. At some point, such asbased on the client indicating that recording is to halt, or upontermination of the call, recording stops.

The recorded portion of the audio stream, which includes the voicemailmessage to be saved, is then made available for the client to download.It may optionally be uploaded to the cloud server by the intermediarynode and/or by the client.

Voicemail message isolation can then be performed as describedpreviously, and the isolated voicemail message can replace the recordedportion stored on the cloud server (if present). Additionally, theclient can add meta tag(s) and message classifier(s), as above, andperform message organization as described previously.

Regarding backup of text messages from the client device, the textmessages, on the client, along with additional information such as atext message source (phone number), time (including date) of arrival,etc. can be periodically uploaded to and stored by the cloud server. Inone example, to prevent redundant backup of a message, the cloud servercan use a triplet of sender phone number, date, and time markers torecognize duplicate messages and removes copies of the message.

Described herein are facilities for backing up messages, includingvoicemail messages and text messages received at destination telephonephone numbers. Accordingly, FIG. 4 depicts one example of a process forbacking up a message, in accordance with aspects described herein. Inone example, the process of FIG. 4 is performed by program codeexecuting on a client computing system, such as a mobile device. Theprocess begins by initiating establishment of an active telephone callto a voicemail server of a telecommunications service (402). Thevoicemail server stores one or more voicemails. In one example, thisinitiating includes invoking a telephone calling facility of the clientcomputing system to place the active telephone call, and the activetelephone call is thereby established between the voicemail server andthe telephone calling facility of the client. In another example, theinitiating includes communicating with an intermediary system, such as aVoIP switch, to place the telephone call to the voicemail server, inwhich case the intermediary system establishes the active telephone callbetween the voicemail server and the client, and an audio stream of theactive telephone call may pass through the intermediary system.

Continuing with FIG. 4, the process then initiates recording of theaudio stream of the active telephone call (404), which audio streamincludes the voicemail message stored at the voicemail server. Forinstance, the stored voicemail message is played back as part of theaudio stream of the active telephone call between the client and thevoicemail server.

In one embodiment, recording is initiated and performed by the agent ofthe client. The agent may receive the audio stream and record a portionof the received audio stream, which portion includes the voicemailmessage being played back. In this manner, the portion of the audiostream may be recorded by the client.

In another embodiment, recording is initiated by the client requestingthat an intermediary system (though which the audio stream passes) beginrecording the audio stream of the active telephone call. For instance,the agent on the client communicates to the intermediary system thatrecording is to begin. Additionally, the client may request that thevoicemail server begin playing the voicemail message (such as byreceiving user input to begin playback). The intermediary system mayforward the request to the voicemail server, e.g. in the form of a DTMFsignal.

In either case—where the client records the portion of the audio streamor the intermediary system records the portion of the audio stream basedon client direction to do so—the initiating recording is performed bythe client, and the starting and stopping of the recording may beautomatic, or based on user input. For instance, user input to a Startor Record button presented in an interface of the client can indicatethat recording of the audio stream is to begin. If recording is beingperformed at the client, the client begins recording. If recording isbeing performed at the intermediary system, the client can send anindication to the intermediary system that recording is to begin.Similarly, user input, such as to a Stop button presented in theinterface of the client, can indicate that recording of the audio streamis to halt, in which case the indication is passed to the intermediarysystem, if recording is occurring at the intermediary system.

Next, at least a portion of the recorded audio stream is stored (406).When recording occurs at the client, the stream is stored by the clientas it is recorded. When recording occurs at the intermediary node, theclient can download from the intermediary node the portion of therecorded stream and store the downloaded portion.

The voicemail message is then sent to a remote backup server for backupof the voicemail message (408). In this regard, the recorded portion ofthe audio stream may be edited at some point to isolate the voicemailmessage. For instance, content that is before the voicemail message,after the voicemail message, or both before and after the voicemailmessage in the audio stream is removed. The editing can occur at anypoint after the portion is recorded, and at any one or more componentsthat at least temporarily stores the portion. For instance, the portioncould be edited at an intermediary system if it is recorded at theintermediary system, and before being downloaded to the client.Alternatively, the portion could be edited at the client after theclient downloads the portion or in situations where the portion isrecorded by the client itself. Yet alternatively, the portion could beuploaded to the remote backup server and edited after being uploaded tothe remote backup server.

In any case, editing of the portion, for instance to isolate thevoicemail message from the recorded portion, is automatic, in someexamples, or manual, in some examples. The portion can be automaticallyedited, in which a beginning and an ending of the voicemail message isautomatically determined based on at least one property of the audiostream, to automatically isolate the voicemail message. The at least oneproperty could include silence or near-silence detected in the waveform.Other techniques for analyzing the properties of the audio stream andisolating a desired segment, such as a voicemail message therein, arepossible.

Additionally or alternatively, the portion can be manually edited, inwhich a user indicates a start of the voicemail message and an end ofthe voicemail message, perhaps by commencing playback of the recordedportion of the audio stream and indicating the start and stop as themessage is played back.

In some examples, a hybrid approach is taken to editing the portion toisolate the voicemail, wherein a beginning and/or ending of thevoicemail message are determined automatically, subject to userverification and/or adjustment.

It is noted that the client may be involved in the editing of theportion of recorded audio stream, even if the changes to the portion (toremove pre-pended or post-pended audio) are committed at a differentdevice. As an example, the editing may be at least partially performedby the client, even when the portion is stored at the intermediarysystem or a remote backup server. In this scenario, indications can besent from the client indicating how the stored portion is to be edited.In this manner, the client is at least partially involved in the editingof the recorded content to isolate the voicemail message therefrom.

In another aspect described herein, a voicemail message is tagged withidentifying information about the voicemail message, such as a sendername, phone number, timestamps, etc, or keywords that a user applies tothe message. This tagging can occur automatically, manually, or acombination of the two, can occur at any point after the voicemail hasbeen recorded, and at any one or more components that at leasttemporarily stores the voicemail message (either before or after it isisolated from the portion of the recorded audio stream). In someembodiments, the tags are used for message organization purposes, asdescribed above, such as when multiple messages are backed up andorganized in a folder or similar organization structure.

In yet a further aspect described herein, the voicemail message can beenhanced by combining the voicemail message with additional content,such as text-based descriptive content, or separate audio message(s).This enhancement can occur automatically, manually, or a combination ofthe two, can occur at any point after the voicemail has been record, andat any one or more components that at least temporarily stores thevoicemail message (either before or after it is isolated from theportion of the recorded audio stream). The separate content with whichthe voicemail message is enhanced could be, for instance, another audiomessage that is separately recorded by the user, or could be a song orother audio clip, for instance a song stored in the user's musiccollection on the client computing system or a song that is purchased,either from another entity through a service described herein or byusing an external service. In another example, the separate content isadvertising content, such as an audio advertisement that is combinedwith the voicemail message such that when the voicemail message isplayed for the user and/or another entity to which the user shares thevoicemail message, the audio advertisement is played before, after,and/or during playback of the voicemail message. In this regard,targeted advertising may be provided wherein voicemail messages areenhanced with advertisements potentially related to the voicemailmessage itself, and/or the user to whom the voicemail message was sent.

Sharing of the voicemail message can be initiated by the user utilizingthe client computing system. In one example, the user shares a savedvoicemail message with a recipient. The recipient may or not be anotheruser of a backup service described herein. Sharing of a voicemailmessage can include playing the voicemail message back via the clientcomputing system (e.g. a mobile device) for the recipient during anactive telephone call with the recipient. For instance, the user canindicate that the voicemail message is to be shared with a person havinga particular phone number, in which case the client application caninitiate a call to the particular phone number and commence playback ofthe message to be shared (which may be enhanced with additional contentas described above) such that the recipient hears the message, or therecipient's voicemail box records the message being played back.

In another example of sharing the voicemail message with anotherrecipient, if the another recipient has an account with a backup serviceas described herein, the voicemail message (which may or may not beenhanced) may become additionally associated with the anotherrecipient's account, enabling the another recipient to playback theshared message as if it were a message that the recipient itselfreceived and saved to his/her account.

In further embodiments, voice and/or text messages that are pushed tothe client computing system can additionally be sent to the remotebackup server and organized along with the voicemail message(s) that arerecorded according to aspects described herein.

The process of FIG. 4 focuses on actions performed at a client computingdevice. FIG. 5 depicts one example of a process for facilitating backingup a message, in accordance with aspects described herein, and, in oneembodiment, the process is performed by an intermediary system asdescribed herein. The intermediary system may be a separate componentfrom both the client computing system and the voicemail server. In someembodiments, the intermediary system comprises the remote backupserver(s) to which the messages are backed up.

The process begins by establishing an active telephone call between aclient computing system and a voicemail server storing a voicemailmessage (502). An audio stream of the active telephone call passesthough the intermediary system and includes a voicemail message to bebacked up. In one example, the establishment of this telephone call isbased on a request from a client computing system to establish thetelephone call. The request may come from a VoIP dialer of the clientcomputing system, for instance.

Next, a request from the client computing system to begin playback ofthe voicemail message is passed to the voicemail server (504). In thisexample, the client computing system communicates to the voicemailserver through the intermediary system, and as part of thatcommunication makes a request (such as input of the number 3, as anexample) that playback commence.

The process continues by commencing recording of at least a portion ofthe audio stream (506). The portion includes the voicemail messagedesired to be backed up. The recording by the intermediary system iscommenced, in one example, based on receiving an indication from theclient computing system that recording is to be commenced. For instance,a user monitoring the active telephone call pushes a button on theclient interface to indicate for the intermediary system that recordingis to commence.

Next, recording of the audio stream is halted (508). Again, in oneexample, halting the recording is based on receiving an indication fromthe client computing system that recording is to be halted.

In alternative embodiments, recording is automatically commenced andhalted based on at least one property of the audio stream, such as oneor more audio properties that can be analyzed automatically to make adetermination that a voicemail message is beginning or ending.

Then, the recorded audio stream is provided to a remote device (510).The remote device could be the client computing system, a remote backupserver, or could be both systems.

Additionally, as described above, further processing of the recordedportion of the audio stream can be performed at the intermediary system.For instance, the recorded portion of the audio stream could beenhanced, edited, and/or tagged, as examples, which could be performedto the recorded portion stored at the intermediary system, before theintermediary system provides the recorded portion to the remote device.

Aspects described herein enable backup, editing, tagging, organization,and sharing of voicemail and text messages that a user receives at oneor more telecommunications services provided to the user, such as one ormore phone accounts (work mobile, personal mobile, office, home, etc.).A user establishes an account with a backup service and can associatemultiple numbers with the account. For instance, multiple mobile deviceshaving different phone numbers can each have a client mobile applicationinstalled thereon to upload to the user's account messages received atthose mobile devices. In this regard, a single user account canaccommodate multiple different mobile, home, office, etc. phone numbersin order to aggregate messages across the multiple numbers with thesingle account.

Additionally, the messages are backed up indefinitely, apart from theuser's telecommunications service(s) or the devices used with thoseservice(s). Later storage/retrieval of the saved messages is completelyindependent of whether the user has access to his/her mobile device(lost, stolen, breaks, cell service suspended, etc). Furthermore,deletion of messages from the mobile device and/or voicemail server(s)does not affect retention of the backed up versions that are stored atthe remote backup servers. Provided, therefore, are facilities forpersistent backup of all voice and text messages, received at variousnumbers, through a central service disjoint from the users'telecommunication services through which the messages were received.

Accordingly, described above is a feature-rich message backup andsharing system and service in which not only is message backup and dataprotection provided for voice and text messages, but also messagetagging, editing, organization, enhancement (including addition ofmessage content such as additional voice or sound content), and/orsharing is further provided as part of a social platform in which userscan modify and share messages with others.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method, or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

FIG. 6 depicts one example of a data processing system to incorporateand use one or more aspects of the present invention. Data processingsystem 600 is suitable for storing and/or executing program code, suchas program code for performing processes described above, and includesat least one processor 602 coupled directly or indirectly to memory 604through, a bus 620. In operation, processor(s) 602 obtain from memory604 one or more instructions for execution by the processors. Memory 604may include local memory employed during actual execution of the programcode, bulk storage, and cache memories which provide temporary storageof at least some program code in order to reduce the number of timescode must be retrieved from bulk storage during program code execution.A non-limiting list of examples of memory 604 includes a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. Memory 604 includes an operating system 605 and one or morecomputer programs 606. In one example, system 600 is a mobile device anda program 606 is a client app for performing the process of FIG. 4 forbacking up a message. In other examples, system 600 is a remote backupserver, or an intermediary system, as described above.

Input/Output (I/O) devices 612, 614 (including but not limited tokeyboards, displays, pointing devices, etc.) may be coupled to thesystem either directly or through I/O controllers 610.

Network adapters 608 may also be coupled to the system to enable thedata processing system to become coupled to other data processingsystems through intervening private or public networks. Modems, cablemodem and Ethernet cards are just a few of the currently available typesof network adapters 608. In one example, network adapters 608 facilitatesending messages to and/or receiving messages from remote sources tofacilitate aspects of the present invention.

Data processing system 600 may be coupled to storage 616 (e.g., anon-volatile storage area, such as magnetic disk drives, optical diskdrives, a tape drive, etc.), having one or more databases. Storage 616may include an internal storage device or an attached or networkaccessible storage. Computer programs in storage 616 may be loaded intomemory 604 and executed by a processor 602.

The data processing system 600 may include fewer components thanillustrated, additional components not illustrated herein, or somecombination of the components illustrated and additional components.Data processing system 600 may include any computing device known in theart, such as a mainframe, server, personal computer, workstation,laptop, handheld computer, telephony device, network appliance,virtualization device, storage controller, etc.

In addition, processes described above may be performed by multiple dataprocessing systems 600, working as part of a clustered computingenvironment.

In some embodiments, aspects of the present invention may take the formof a computer program product embodied in one or more computer readablemedium(s). Any combination of one or more computer readable medium(s)may be utilized. The computer readable medium may be a computer readablestorage medium. A computer readable storage medium may be, for example,but not limited to, an electronic, magnetic, optical, or semiconductorsystem, apparatus, or device, or any suitable combination of theforegoing. More specific examples (a non-exhaustive list) of thecomputer readable storage medium include the following: an electricalconnection having one or more wires, a portable computer diskette, ahard disk, a random access memory (RAM), a read-only memory (ROM), anerasable programmable read-only memory (EPROM or Flash memory), anoptical fiber, a portable compact disc read-only memory (CD-ROM), anoptical storage device, a magnetic storage device, or any suitablecombination of the foregoing. In the context of this document, acomputer readable storage medium may be any tangible medium that cancontain or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Referring now to FIG. 7, in one example, a computer program product 700includes, for instance, one or more computer readable media 702 to storecomputer readable program code means or logic 704 thereon to provide andfacilitate one or more aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions.

These computer program instructions may be provided to a processor of ageneral purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions, which execute via the processor of the computer orother programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

Further, a data processing system suitable for storing and/or executingprogram code is usable that includes at least one processor coupleddirectly or indirectly to memory elements through a system bus. Thememory elements include, for instance, local memory employed duringactual execution of the program code, bulk storage, and cache memorywhich provide temporary storage of at least some program code in orderto reduce the number of times code must be retrieved from bulk storageduring execution.

Input/Output or I/O devices (including, but not limited to, keyboards,displays, pointing devices, DASD, tape, CDs, DVDs, thumb drives andother memory media, etc.) can be coupled to the system either directlyor through intervening I/O controllers. Network adapters may also becoupled to the system to enable the data processing system to becomecoupled to other data processing systems or remote printers or storagedevices through intervening private or public networks. Modems, cablemodems, and Ethernet cards are just a few of the available types ofnetwork adapters.

A small sample of systems, methods, and computer program products thatare described herein is as follows:

A1. A method for backing up one or more messages, the method comprising:

-   -   initiating, by a processor of a computing system, establishment        of an active telephone call to a voicemail server of a        telecommunications service, the voicemail server storing a        voicemail message;    -   initiating recording of at least a portion of an audio stream of        the active telephone call, the portion of the audio stream        comprising the voicemail message;    -   storing the recorded portion of the audio stream, wherein the        stored portion of the audio stream comprises the voicemail        message; and    -   sending the voicemail message to a remote backup server for        backup of the voicemail message.

A2. The method of A1, wherein initiating establishment of the activetelephone call comprises invoking a telephone calling facility of thecomputing system to place the active telephone call, wherein the activetelephone call is established between the telephone calling facility ofthe computing system and the voicemail server.

A3. The method of A2, wherein the computing system initiates therecording of the portion of the audio stream, and wherein the computingsystem receives the audio stream during the active telephone call andrecords the portion of the audio stream as it is received.

A4. The method of A1, wherein initiating establishment of the activetelephone call comprises communicating with an intermediary system toplace the telephone call to the voicemail server, wherein theintermediary system establishes the active telephone call between thecomputing system and the voicemail server, and wherein the audio streamof the active telephone call passes through the intermediary system.

A5. The method of A4, wherein the intermediary system comprises a voiceover Internet Protocol switch.

A6. The method of A4, wherein initiating recording of the portion of theaudio stream of the active telephone call comprises:

-   -   the computing system requesting that the intermediary system        begin recording the portion of the audio stream of the active        telephone call; and    -   the computing system requesting that the voicemail server begin        playing the voicemail message as part of the audio stream of the        active telephone call.

A7. The method of A6, wherein the computing system downloads therecorded portion of the audio stream from the intermediary system, andstores the recorded portion of the audio stream.

A8. The method of A1, wherein the recording is started and stopped basedon user input, wherein user input indicating that recording is to begininitiates recording of the portion of the audio stream, and wherein userinput indicating that recording is to halt initiates halting therecording of the portion of the audio stream.

A9. The method of A1, wherein the method further comprises editing therecorded portion of the audio stream, the editing isolating thevoicemail message from recorded content that is at least one of beforeor after the voicemail message in the audio of the recorded portion ofthe audio stream.

A10. The method of A9, wherein the recorded portion of the audio streamis edited automatically, wherein a beginning and an ending of thevoicemail message is automatically determined based on at least oneproperty of the audio stream, and wherein the voicemail message isautomatically isolated based on the determining.

A11. The method of A9, wherein the recorded portion of the audio streamis edited manually, wherein a user commences playback of the recordedportion of the audio stream and indicates a start of the voicemailmessage and an end of the voicemail message.

A12. The method of A1, wherein the method further comprises tagging thevoicemail message with identifying information about the voicemailmessage.

A13. The method of A1, wherein the computing system is a mobile device.

A14. The method of A1, wherein the method further comprises enhancingthe voicemail message by combining the voicemail message with a separateaudio message.

A15. The method of A14, wherein the separate audio message comprises atleast one of: another audio message separately recorded by the user, anaudio advertisement, or a song.

A16. The method of A1, wherein the method further comprises initiatingsharing the voicemail message with another recipient.

A17. The method of A16, wherein the sharing comprises playing back thevoicemail message via the computing system for the another recipientduring an active telephone call with the another recipient.

A18. The method of A1, wherein the voicemail message is one of aplurality of voicemail messages stored at the remote backup server, andwherein the method further comprises providing an interface fororganizing the plurality of voicemail messages into one or more folders.

A19. The method of A1, wherein the method further comprisesautomatically receiving an additional voicemail message, the additionalvoicemail messaged pushed to the mobile device, and sending theadditional voicemail message to the remote backup server.

A20. The method of A1, wherein the method further comprises uploadingone or more text messages stored on the computing system to the remotebackup server along with an indication of a source and time of arrivalof each text message of the one or more text messages.

B1. A computing system for backing up one or more messages, thecomputing system comprising:

-   -   a memory; and    -   a processor in communication with the memory, wherein the        computing system is configured to perform a method comprising:        -   initiating establishment of an active telephone call to a            voicemail server of a telecommunications service, the            voicemail server storing a voicemail message;        -   initiating recording of at least a portion of an audio            stream of the active telephone call, the portion of the            audio stream comprising the voicemail message;        -   storing the recorded portion of the audio stream, wherein            the stored portion of the audio stream comprises the            voicemail message; and        -   sending the voicemail message to a remote backup server for            backup of the voicemail message.

B2. The computing system of B1, wherein initiating establishment of theactive telephone call comprises invoking a telephone calling facility ofthe computing system to place the active telephone call, and wherein theactive telephone call is established between the telephone callingfacility of the computing system and the voicemail server.

B3. The computing system of B2, wherein the computing system initiatesthe recording of the portion of the audio stream, and wherein thecomputing system receives the audio stream during the active telephonecall and records the portion of the audio stream as it is received.

B4. The computing system of B1, wherein initiating establishment of theactive telephone call comprises communicating with an intermediarysystem to place the telephone call to the voicemail server, wherein theintermediary system establishes the active telephone call between thecomputing system and the voicemail server, and wherein the audio streamof the active telephone call passes through the intermediary system.

B5. The computing system of B4, wherein the intermediary systemcomprises a voice over Internet Protocol switch.

B6. The computing system of B4, wherein initiating recording of theportion of the audio stream of the active telephone call comprises:

-   -   the computing system requesting that the intermediary system        begin recording the portion of the audio stream of the active        telephone call; and    -   the computing system requesting that the voicemail server begin        playing the voicemail message as part of the audio stream of the        active telephone call.

B7. The computing system of B6, wherein the computing system downloadsthe recorded portion of the audio stream from the intermediary system,and stores the recorded portion of the audio stream.

B8. The computing system of B1, wherein the recording is started andstopped based on user input, wherein user input indicating thatrecording is to begin initiates recording of the portion of the audiostream, and wherein user input indicating that recording is to haltinitiates halting the recording of the portion of the audio stream.

B9. The computing system of B1, wherein the method further comprisesediting the recorded portion of the audio stream, the editing isolatingthe voicemail message from recorded content that is at least one ofbefore or after the voicemail message in the audio of the recordedportion of the audio stream.

B10. The computing system of B9, wherein the recorded portion of theaudio stream is edited automatically, wherein a beginning and an endingof the voicemail message is automatically determined based on at leastone property of the audio stream, and wherein the voicemail message isautomatically isolated based on the determining.

B11. The computing system of B9, wherein the recorded portion of theaudio stream is edited manually, wherein a user commences playback ofthe recorded portion of the audio stream and indicates a start of thevoicemail message and an end of the voicemail message.

B12. The computing system of B1, wherein the method further comprisestagging the voicemail message with identifying information about thevoicemail message.

B13. The computing system of B1, wherein the computing system is amobile device.

B14. The computing system of B1, wherein the method further comprisesenhancing the voicemail message by combining the voicemail message witha separate audio message.

B15. The computing system of B14, wherein the separate audio messagecomprises at least one of: another audio message separately recorded bythe user, an audio advertisement, or a song.

B16. The computing system of B1, wherein the method further comprisesinitiating sharing the voicemail message with another recipient.

B17. The computing system of B16, wherein the sharing comprises playingback the voicemail message via the computing system for the anotherrecipient during an active telephone call with the another recipient.

B18. The computing system of B1, wherein the voicemail message is one ofa plurality of voicemail messages stored at the remote backup server,and wherein the method further comprises providing an interface fororganizing the plurality of voicemail messages into one or more folders.

B19. The computing system of B1, wherein the method further comprisesautomatically receiving an additional voicemail message, the additionalvoicemail messaged pushed to the mobile device, and sending theadditional voicemail message to the remote backup server.

B20. The computing system of B1, wherein the method further comprisesuploading one or more text messages stored on the computing system tothe remote backup server along with an indication of a source and timeof arrival of each text message of the one or more text messages.

C1. A computer program product for backing up one or more messages, thecomputer program product comprising:

-   -   a tangible storage medium storing program instructions readable        by a processor of a computing system for execution to perform a        method comprising:        -   initiating, by the processor of the computing system,            establishment of an active telephone call to a voicemail            server of a telecommunications service, the voicemail server            storing a voicemail message;        -   initiating recording of at least a portion of an audio            stream of the active telephone call, the portion of the            audio stream comprising the voicemail message;        -   storing the recorded portion of the audio stream, wherein            the stored portion of the audio stream comprises the            voicemail message; and        -   sending the voicemail message to a remote backup server for            backup of the voicemail message.

C2. The computer program product of C1, wherein initiating establishmentof the active telephone call comprises invoking a telephone callingfacility of the computing system to place the active telephone call, andwherein the active telephone call is established between the telephonecalling facility of the computing system and the voicemail server.

C3. The computer program product of C2, wherein the computing systeminitiates the recording of the portion of the audio stream, and whereinthe computing system receives the audio stream during the activetelephone call and records the portion of the audio stream as it isreceived.

C4. The computer program product of C1, wherein initiating establishmentof the active telephone call comprises communicating with anintermediary system to place the telephone call to the voicemail server,wherein the intermediary system establishes the active telephone callbetween the computing system and the voicemail server, and wherein theaudio stream of the active telephone call passes through theintermediary system.

C5. The computer program product of C4, wherein the intermediary systemcomprises a voice over Internet Protocol switch.

C6. The computer program product of C4, wherein initiating recording ofthe portion of the audio stream of the active telephone call comprises:

-   -   requesting that the intermediary system begin recording the        portion of the audio stream of the active telephone call; and    -   requesting that the voicemail server begin playing the voicemail        message as part of the audio stream of the active telephone        call.

C7. The computer program product of C6, wherein the computing systemdownloads the recorded portion of the audio stream from the intermediarysystem, and stores the recorded portion of the audio stream.

C8. The computer program product of C1, wherein the recording is startedand stopped based on user input, wherein user input indicating thatrecording is to begin initiates recording of the portion of the audiostream, and wherein user input indicating that recording is to haltinitiates halting the recording of the portion of the audio stream.

C9. The computer program product of C1, wherein the method furthercomprises editing the recorded portion of the audio stream, the editingisolating the voicemail message from recorded content that is at leastone of before or after the voicemail message in the audio of therecorded portion of the audio stream.

C10. The computer program product of C9, wherein the recorded portion ofthe audio stream is edited automatically, wherein a beginning and anending of the voicemail message is automatically determined based on atleast one property of the audio stream, and wherein the voicemailmessage is automatically isolated based on the determining.

C11. The computer program product of C9, wherein the recorded portion ofthe audio stream is edited manually, wherein a user commences playbackof the recorded portion of the audio stream and indicates a start of thevoicemail message and an end of the voicemail message.

C12. The computer program product of C1, wherein the method furthercomprises tagging the voicemail message with identifying informationabout the voicemail message.

C13. The computer program product of C1, wherein the computing system isa mobile device.

C14. The computer program product of C1, wherein the method furthercomprises enhancing the voicemail message by combining the voicemailmessage with a separate audio message.

C15. The computer program product of C14, wherein the separate audiomessage comprises at least one of: another audio message separatelyrecorded by the user, an audio advertisement, or a song.

C16. The computer program product of C1, wherein the method furthercomprises initiating sharing the voicemail message with anotherrecipient.

C17. The computer program product of C16, wherein the sharing comprisesplaying back the voicemail message via the computing system for theanother recipient during an active telephone call with the anotherrecipient.

C18. The computer program product of C1, wherein the voicemail messageis one of a plurality of voicemail messages stored at the remote backupserver, and wherein the method further comprises providing an interfacefor organizing the plurality of voicemail messages into one or morefolders.

C19. The computer program product of C1, wherein the method furthercomprises automatically receiving an additional voicemail message, theadditional voicemail messaged pushed to the mobile device, and sendingthe additional voicemail message to the remote backup server.

C20. The computer program product of C1, wherein the method furthercomprises uploading one or more text messages stored on the computingsystem to the remote backup server along with an indication of a sourceand time of arrival of each text message of the one or more textmessages.

D1. A method to facilitate backing up one or more voicemail messages,the method comprising:

-   -   establishing, by a processor of an intermediary system, an        active telephone call between a client computing system and a        voicemail server storing a voicemail message, wherein the        intermediary system is a separate component from the client        computing system and the voicemail server, wherein an audio        stream of the active telephone call passes through the        intermediary system and comprises the voicemail message;    -   passing to the voicemail server a request from the client        computing system to begin playback of the voicemail message; and    -   commencing recording of at least a portion of the audio stream,        the portion of the audio stream comprising the voicemail        message.

D2. The method of D1, wherein the recording commences based on receivingan indication from the client computing system that recording is to becommenced.

D3. The method of D2, wherein the method further comprises, based onreceiving an indication from the client computing system, haltingrecording of the portion of the audio stream.

D4. The method of D1, wherein recording is commenced automatically basedon at least one property of the audio stream.

D5. The method of D4, wherein the method further comprises haltingrecording of the portion of the audio stream based on the at least oneproperty of the audio stream.

D6. The method of D1, wherein the method further comprises providing therecorded portion of the audio stream to at least one of the clientcomputing system or a remote backup server.

D7. The method of D1, wherein the intermediary system comprises a voiceover Internet Protocol switch.

E1. An intermediary system to facilitate backing up one or morevoicemail messages, the intermediary system comprising:

-   -   a processor; and    -   a memory in communication with the processor, wherein the        intermediary system is configured to perform a method        comprising:        -   establishing an active telephone call between a client            computing system and a voicemail server storing a voicemail            message, wherein the intermediary system is a separate            component from the client computing system and the voicemail            server, wherein an audio stream of the active telephone call            passes through the intermediary system and comprises the            voicemail message;        -   passing to the voicemail server a request from the client            computing system to begin playback of the voicemail message;            and        -   commencing recording of at least a portion of the audio            stream, the portion of the audio stream comprising the            voicemail message.

E2. The intermediary system of E1, wherein the recording commences basedon receiving an indication from the client computing system thatrecording is to be commenced.

E3. The intermediary system of E2, wherein the method further comprises,based on receiving an indication from the client computing system,halting recording of the portion of the audio stream.

E4. The intermediary system of E2, wherein recording is commencedautomatically based on at least one property of the audio stream.

E5. The intermediary system of E4, wherein the method further compriseshalting recording of the portion of the audio stream based on the atleast one property of the audio stream.

E6. The intermediary system of E1, wherein the method further comprisesproviding the recorded portion of the audio stream to at least one ofthe client computing system or a remote backup server.

E7. The intermediary system of E1, wherein the intermediary systemcomprises a voice over Internet Protocol switch.

F1. A computer program product to facilitate backing up one or morevoicemail messages, the computer program product comprising:

-   -   a tangible storage medium storing program instructions readable        by a processor of an intermediary system for execution to        perform a method comprising:        -   establishing, by the processor of the intermediary system,            an active telephone call between a client computing system            and a voicemail server storing a voicemail message, wherein            the intermediary system is a separate component from the            client computing system and the voicemail server, wherein an            audio stream of the active telephone call passes through the            intermediary system and comprises the voicemail message;        -   passing to the voicemail server a request from the client            computing system to begin playback of the voicemail message;            and        -   commencing recording of at least a portion of the audio            stream, the portion of the audio stream comprising the            voicemail message.

F2. The computer program product of F1, wherein the recording commencesbased on receiving an indication from the client computing system thatrecording is to be commenced.

F3. The computer program product of F2, wherein the method furthercomprises, based on receiving an indication from the client computingsystem, halting recording of the portion of the audio stream.

F4. The computer program product of F1, wherein recording is commencedautomatically based on at least one property of the audio stream.

F5. The computer program product of F4, wherein the method furthercomprises halting recording of the portion of the audio stream based onthe at least one property of the audio stream.

F6. The computer program product of F1, wherein the method furthercomprises providing the recorded portion of the audio stream to at leastone of the client computing system or a remote backup server.

F7. The computer program product of F1, wherein the intermediary systemcomprises a voice over Internet Protocol switch.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprise” (andany form of comprise, such as “comprises” and “comprising”), “have” (andany form of have, such as “has” and “having”), “include” (and any formof include, such as “includes” and “including”), and “contain” (and anyform contain, such as “contains” and “containing”) are open-endedlinking verbs. As a result, a method or device that “comprises”, “has”,“includes” or “contains” one or more steps or elements possesses thoseone or more steps or elements, but is not limited to possessing onlythose one or more steps or elements. Likewise, a step of a method or anelement of a device that “comprises”, “has”, “includes” or “contains”one or more features possesses those one or more features, but is notlimited to possessing only those one or more features. Furthermore, adevice or structure that is configured in a certain way is configured inat least that way, but may also be configured in ways that are notlisted.

The description of the present invention has been presented for purposesof illustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

The invention claimed is:
 1. A method comprising: initiating, by acomputer system, establishment of an active telephone call to avoicemail server of a telecommunications service, the voicemail serverstoring a voicemail message; receiving, by the computer system, an audiostream from the voicemail server during the active telephone call, theaudio stream being part of the active telephone call, wherein thevoicemail message is played back as part of the audio stream;initiating, by the computer system, recording of at least a portion ofthe audio stream of the active telephone call, the portion of the audiostream comprising the voicemail message; and streaming the portion ofthe audio stream from the computer system to a remote system, whereinthe streaming streams the portion of the audio stream from the computersystem to the remote system as the portion of the audio stream is beingreceived by the computer system from the voicemail server.
 2. The methodof claim 1, wherein the streaming streams the portion of the audiostream in a telephone call to a phone number to which the voicemailmessage is to be shared.
 3. The method of claim 1, wherein the remotesystem comprises another voicemail server.
 4. The method of claim 1,wherein the computer system is a mobile device comprising a mobile appthat performs the receiving the audio stream, and the mobile app recordsthe portion of the audio stream, including the voicemail message, on themobile device and plays the voicemail message back during anothertelephone call to a recipient phone number receiving the voicemailmessage as part of an audio stream of the another telephone call.
 5. Themethod of claim 4, wherein the mobile app comprises user interfaceelements for initiating and halting playback of the voicemail message,and wherein the mobile app initiates playback of the recorded voicemailduring the another telephone call based on user input via a first userinterface element of the mobile app to initiate the playback, and themobile app halts playback of the recorded voicemail message during theanother telephone call based on user input via a second user interfaceelement of the mobile app to halt the playback.
 6. The computer systemof claim 1, wherein the computer system is a mobile device comprising amobile app that performs the receiving the audio stream, and the mobileapp records the portion of the audio stream, including the voicemailmessage, on the mobile device and plays the voicemail message backduring another telephone call to a recipient phone number receiving thevoicemail message as part of an audio stream of the another telephonecall, wherein the mobile app comprises user interface elements forinitiating and halting playback of the voicemail message, and whereinthe mobile app initiates playback of the recorded voicemail during theanother telephone call based on user input via a first user interfaceelement of the mobile app to initiate the playback, and the mobile apphalts playback of the recorded voicemail message during the anothertelephone call based on user input via a second user interface elementof the mobile app to halt the playback.
 7. A computer program productcomprising: a tangible storage medium storing program instructionsreadable by a processor of a computer system for execution to perform amethod comprising: initiating, by the computer system, establishment ofan active telephone call to a voicemail server of a telecommunicationsservice, the voicemail server storing a voicemail message; receiving anaudio stream from the voicemail server during the active telephone call,the audio stream being part of the active telephone call, wherein thevoicemail message is played back as part of the audio stream; initiatingrecording of at least a portion of the audio stream of the activetelephone call, the portion of the audio stream comprising the voicemailmessage; and streaming the portion of the audio stream from the computersystem to a remote system, wherein the streaming streams the portion ofthe audio stream from the computer system to the remote system as theportion of the audio stream is being received by the computer systemfrom the voicemail server.
 8. The computer program product of claim 7,wherein the streaming streams the portion of the audio stream in atelephone call to a phone number to which the voicemail message is to beshared.
 9. The computer program product of claim 7, wherein the remotesystem comprises another voicemail server.
 10. The computer programproduct of claim 7, wherein the computer system is a mobile devicecomprising a mobile app that performs the receiving the audio stream,and the mobile app records the portion of the audio stream, includingthe voicemail message, on the mobile device and plays the voicemailmessage back during another telephone call to a recipient phone numberreceiving the voicemail message as part of an audio stream of theanother telephone call.
 11. The computer program product of claim 10,wherein the mobile app comprises user interface elements for initiatingand halting playback of the voicemail message, and wherein the mobileapp initiates playback of the recorded voicemail during the anothertelephone call based on user input via a first user interface element ofthe mobile app to initiate the playback, and the mobile app haltsplayback of the recorded voicemail message during the another telephonecall based on user input via a second user interface element of themobile app to halt the playback.
 12. A computer system comprising: amemory; and a processor in communication with the memory, wherein thecomputer system is configured to perform a method comprising: initiatingestablishment of an active telephone call to a voicemail server of atelecommunications service, the voicemail server storing a voicemailmessage; receiving an audio stream from the voicemail server during theactive telephone call, the audio stream being part of the activetelephone call, wherein the voicemail message is played back as part ofthe audio stream; initiating recording of at least a portion of theaudio stream of the active telephone call, the portion of the audiostream comprising the voicemail message; and streaming the portion ofthe audio stream from the computer system to a remote system, whereinthe streaming streams the portion of the audio stream from the computersystem to the remote system as the portion of the audio stream is beingreceived by the computer system from the voicemail server.
 13. Thecomputer system of claim 12, wherein the streaming streams the portionof the audio stream in a telephone call to a phone number to which thevoicemail message is to be shared.
 14. The computer system of claim 12,wherein the remote system comprises another voicemail server.